home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / awt / List.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  3.4 KB  |  240 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.ListPeer;
  4. import java.util.Vector;
  5.  
  6. public class List extends Component {
  7.    Vector items;
  8.    int rows;
  9.    boolean multipleSelections;
  10.    int[] selected;
  11.    int visibleIndex;
  12.  
  13.    public List() {
  14.       this(0, false);
  15.    }
  16.  
  17.    public List(int var1, boolean var2) {
  18.       this.items = new Vector();
  19.       this.multipleSelections = false;
  20.       this.selected = new int[0];
  21.       this.visibleIndex = -1;
  22.       this.rows = var1;
  23.       this.multipleSelections = var2;
  24.    }
  25.  
  26.    public synchronized void addNotify() {
  27.       if (super.peer == null) {
  28.          super.peer = ((Component)this).getToolkit().createList(this);
  29.       }
  30.  
  31.       super.addNotify();
  32.       this.visibleIndex = -1;
  33.    }
  34.  
  35.    public synchronized void removeNotify() {
  36.       if (super.peer != null) {
  37.          ListPeer var1 = (ListPeer)super.peer;
  38.          this.selected = var1.getSelectedIndexes();
  39.       }
  40.  
  41.       super.removeNotify();
  42.    }
  43.  
  44.    public int countItems() {
  45.       return this.items.size();
  46.    }
  47.  
  48.    public String getItem(int var1) {
  49.       return (String)this.items.elementAt(var1);
  50.    }
  51.  
  52.    public synchronized void addItem(String var1) {
  53.       this.addItem(var1, -1);
  54.    }
  55.  
  56.    public synchronized void addItem(String var1, int var2) {
  57.       if (var2 < -1 || var2 >= this.items.size()) {
  58.          var2 = -1;
  59.       }
  60.  
  61.       if (var2 == -1) {
  62.          this.items.addElement(var1);
  63.       } else {
  64.          this.items.insertElementAt(var1, var2);
  65.       }
  66.  
  67.       ListPeer var3 = (ListPeer)super.peer;
  68.       if (var3 != null) {
  69.          var3.addItem(var1, var2);
  70.       }
  71.  
  72.    }
  73.  
  74.    public synchronized void replaceItem(String var1, int var2) {
  75.       this.delItem(var2);
  76.       this.addItem(var1, var2);
  77.    }
  78.  
  79.    public synchronized void clear() {
  80.       if (super.peer != null) {
  81.          ((ListPeer)super.peer).clear();
  82.       }
  83.  
  84.       this.items = new Vector();
  85.       this.selected = new int[0];
  86.    }
  87.  
  88.    public synchronized void delItem(int var1) {
  89.       this.delItems(var1, var1);
  90.    }
  91.  
  92.    public synchronized void delItems(int var1, int var2) {
  93.       for(int var3 = var2; var3 >= var1; --var3) {
  94.          this.items.removeElementAt(var3);
  95.       }
  96.  
  97.       if (super.peer != null) {
  98.          ((ListPeer)super.peer).delItems(var1, var2);
  99.       }
  100.  
  101.    }
  102.  
  103.    public synchronized int getSelectedIndex() {
  104.       int[] var1 = this.getSelectedIndexes();
  105.       return var1.length == 1 ? var1[0] : -1;
  106.    }
  107.  
  108.    public synchronized int[] getSelectedIndexes() {
  109.       ListPeer var1 = (ListPeer)super.peer;
  110.       if (var1 != null) {
  111.          this.selected = var1.getSelectedIndexes();
  112.       }
  113.  
  114.       return this.selected;
  115.    }
  116.  
  117.    public synchronized String getSelectedItem() {
  118.       int var1 = this.getSelectedIndex();
  119.       return var1 < 0 ? null : this.getItem(var1);
  120.    }
  121.  
  122.    public synchronized String[] getSelectedItems() {
  123.       int[] var1 = this.getSelectedIndexes();
  124.       String[] var2 = new String[var1.length];
  125.  
  126.       for(int var3 = 0; var3 < var1.length; ++var3) {
  127.          var2[var3] = this.getItem(var1[var3]);
  128.       }
  129.  
  130.       return var2;
  131.    }
  132.  
  133.    public synchronized void select(int var1) {
  134.       ListPeer var2 = (ListPeer)super.peer;
  135.       if (var2 != null) {
  136.          var2.select(var1);
  137.       } else {
  138.          for(int var3 = 0; var3 < this.selected.length; ++var3) {
  139.             if (this.selected[var3] == var1) {
  140.                return;
  141.             }
  142.          }
  143.  
  144.          if (!this.multipleSelections) {
  145.             this.selected = new int[1];
  146.             this.selected[0] = var1;
  147.          } else {
  148.             int[] var4 = new int[this.selected.length + 1];
  149.             System.arraycopy(this.selected, 0, var4, 0, this.selected.length);
  150.             var4[this.selected.length] = var1;
  151.             this.selected = var4;
  152.          }
  153.       }
  154.    }
  155.  
  156.    public synchronized void deselect(int var1) {
  157.       ListPeer var2 = (ListPeer)super.peer;
  158.       if (var2 != null) {
  159.          var2.deselect(var1);
  160.       }
  161.  
  162.       for(int var3 = 0; var3 < this.selected.length; ++var3) {
  163.          if (this.selected[var3] == var1) {
  164.             int[] var4 = new int[this.selected.length - 1];
  165.             System.arraycopy(this.selected, 0, var4, 0, var3);
  166.             System.arraycopy(this.selected, var3 + 1, var4, var3, this.selected.length - (var3 + 1));
  167.             this.selected = var4;
  168.             return;
  169.          }
  170.       }
  171.  
  172.    }
  173.  
  174.    public synchronized boolean isSelected(int var1) {
  175.       int[] var2 = this.getSelectedIndexes();
  176.  
  177.       for(int var3 = 0; var3 < var2.length; ++var3) {
  178.          if (var2[var3] == var1) {
  179.             return true;
  180.          }
  181.       }
  182.  
  183.       return false;
  184.    }
  185.  
  186.    public int getRows() {
  187.       return this.rows;
  188.    }
  189.  
  190.    public boolean allowsMultipleSelections() {
  191.       return this.multipleSelections;
  192.    }
  193.  
  194.    public void setMultipleSelections(boolean var1) {
  195.       if (var1 != this.multipleSelections) {
  196.          this.multipleSelections = var1;
  197.          ListPeer var2 = (ListPeer)super.peer;
  198.          if (var2 != null) {
  199.             var2.setMultipleSelections(var1);
  200.          }
  201.       }
  202.  
  203.    }
  204.  
  205.    public int getVisibleIndex() {
  206.       return this.visibleIndex;
  207.    }
  208.  
  209.    public void makeVisible(int var1) {
  210.       ListPeer var2 = (ListPeer)super.peer;
  211.       this.visibleIndex = var1;
  212.       if (var2 != null) {
  213.          var2.makeVisible(var1);
  214.       }
  215.  
  216.    }
  217.  
  218.    public Dimension preferredSize(int var1) {
  219.       ListPeer var2 = (ListPeer)super.peer;
  220.       return var2 != null ? var2.preferredSize(var1) : super.preferredSize();
  221.    }
  222.  
  223.    public Dimension preferredSize() {
  224.       return this.rows > 0 ? this.preferredSize(this.rows) : super.preferredSize();
  225.    }
  226.  
  227.    public Dimension minimumSize(int var1) {
  228.       ListPeer var2 = (ListPeer)super.peer;
  229.       return var2 != null ? var2.minimumSize(var1) : super.minimumSize();
  230.    }
  231.  
  232.    public Dimension minimumSize() {
  233.       return this.rows > 0 ? this.minimumSize(this.rows) : super.minimumSize();
  234.    }
  235.  
  236.    protected String paramString() {
  237.       return super.paramString() + ",selected=" + this.getSelectedItem();
  238.    }
  239. }
  240.